This invention relates to Forward Error Correction (FEC) coding and in particular FEC coding in optical communication systems.
The objective of an optical communication system is to transmit (usually binary) communication data, error free, from a source to a destination in the form of optical radiation (optical channel) modulated with the communications traffic. However, there are many physical effects on the optical channel as it is transmitted from the source to the destination (such as for example random distortions like Amplified Spontaneous Emission ASE or thermal noise and deterministic distortions such as chromatic dispersion, Self Phase Modulation SPM, Cross Phase Modulation XPM, or Four Wave Mixing FWM) that can lead to transmission errors, that is a binary “0” at the input of the channel being received as a binary “1” and vice versa In order to improve the reliability of the channel, a technique known as channel coding is employed. FIG. 1 illustrates a simplified binary channel model of an optical transmission system, comprising at the source, a data source and a channel encoder, the optical channel, and at the destination, a channel decoder and data sink The binary channel includes a laser, modulator, the optical transmission path, and receiver up to a threshold detector.
The principle of channel coding is to add redundancy at the transmitter (usually requiring an increase in transmission speed and thus the bandwidth of the signal) and to use this in-built redundancy at the receiver to correct and/or detect errors. Such coding systems are termed Forward Error Correction (FEC) coding. FEC improves the optical transmission channel to make it more suitable for reliable transmission of communication traffic.
For optical communication systems the redundancy of error correcting coding is usually transmitted out-of-band, that is, transmission of the additional (overhead) symbols increases the transmission rate. Transmission out-of-band ensures a constant information bit rate independent from the error correcting coding rate. However, the rate of the code influences the bandwidth of the signal and therefore increases the requirements for optical and electrical components as well as transmission impairments that depend on the bandwidth. Therefore the redundancy of the channel code should be kept quite low and it is highly desirable to maintain the 7% overhead that is used in current systems. For an optical communication system at a transmission rate of 10 Gbit/s an error correcting code of length 10,000 bits has a transmission delay of just Ins. The bit error rate (BER) is required to be as low as 10−12 to 10−15 and thus long, high rate codes with large minimum distance are required. Moreover, because of the high transmission rate the decoding complexity should be as low as possible. In practice this low bit error rate cannot be verified with standard Monte Carlo simulations and is even difficult to measure. Therefore it is an advantage if the performance of the code can be calculated or estimated sufficiently accurate.
As suggested by several publications [e.g. Y. Katayama, OFC 2003, WN2, pp. 391-393 and O. Ait Sab, OFC 2001, TuF1], the coding gain can easily be improved by adding more redundancy and thus increasing the line rate. However, for enhanced FEC codes it is highly desirable to maintain the 7% overhead, in order to avoid more expensive opto-electronic components and to limit transmission impairments that can arise from a further increase in line rate.
There exist many different types of channel codes, and the problem is to conceive a code that reduces the number of errors as much as possible, and at the same time meets the requirements for the optical communication system As defined in ITU-T G.709 (Approved February 2001) Annex A, the content of which is hereby incorporated by way of reference thereto, the standard out-of-band FEC coding scheme for optical transmission systems has a code rate of 239/255 with an overhead of approx 7% and a net coding gain (NCG) of 6.2 dB at a bit error ratio (BER) of 10−15.
As represented in FIG. 2 this out-of-band FEC employs a block interleaving of 16 code words of the (255,239,17) Reed-Solomon (RS) code (hereinafter referred to as G.709 RS(255,239) coding). The interleaving is done byte-wise, that is, at the transmitter the first byte of the first code word is sent over the channel, then the first byte of the second code word, and so on. After the first byte of the 16th code word has been sent, the second byte of the first code word is transmitted. Decoding is done algebraically up to half the minimum distance. Therefore the code can correct a minimum of 8 arbitrary erroneous bytes and a burst error of (((8×16)−1)×8)+1=1017 bits. In FIG. 2 the shaded area denote the distribution of redundancy.
In addition to the ITU Recommendation, there exist many proposals for improved error correcting code. Most code constructions are based on the concatenation of two different component codes called an inner and outer code respectively. Code concatenation is a method of building long codes from shorter ones in order to simplify decoding of these codes by a sequential, repetitive or iterative decoder based on decoders for the component codes.
Referring to FIG. 3 there is shown a schematic representation of a communication system including code concatenation. An outer decoder encodes the data in a first encoding step, the encoded data is then scrambled by an interleaver (II) and the scrambled data is then encoded a second time by an inner encoder. At the destination the received data is firstly decoded by an inner decoder in a first decoding step, un-scrambled by de-interleaving using a de-interleaver (II−1) and then decoded in a second decoding step by an outer decoder. Dependent on the type of component codes and the interleaving scheme used, there exist many variants of concatenated codes. Decoding can be done either sequentially (i.e. first inner decoding then de-interleaving and then outer decoding) decoding each code only once, or with repetitions (also called iteratively).
The first approaches of concatenated codes considered the concatenation of Reed-Solomon (RS) codes. This type of code needs more redundancy (15%-25%) and reach gains of approximately 9 dB-9.5 dB. The increased redundancy, however, is a disadvantage in current systems. This type of concatenation maintains or even increases the large burst error correcting capability of the standard scheme.
A second variant, as first investigated by Forney [D. Forney, Concatenated Codes, MIT Press, Cambridge, 1966], is the concatenation of RS and binary BCH (Bose-Chaudhuri-Hocquenghem) codes resulting in a binary code. In such a coding scheme the RS component code is the outer code and the BGH component code as the inner code. Such a code can achieve a coding gain of up to 8.5 dB with a redundancy of 7% and higher gains for more redundancy.
A third coding variant is the concatenation of two binary BCH codes with a block interleaver resulting in a so-called product code. This approach is well suited for iterative decoding and reaches a high coding gain for bit error rates down to 10−10-10−12. A problem with this type of coding scheme, compared to algebraic codes, is the small minimum Hamming distance that can lead to a behaviour for very low error rates that is similar to an error floor (the output bit error rate decreases very slowly with decreasing input bit error rate). However, the actual behaviour at these low error rates is often difficult to predict
A further alternative-coding scheme is to use a very long BCH code that is decoded algebraically achieving a coding gain of approx. 8.4 dB. For this solution there is no error floor problem, but the complexity for decoding is also quite significant. The burst error correcting capability of all these high gain codes is significantly lower compared to the standard.
Generalised (or multilevel) concatenation is a special technique for concatenating codes that leads to better parameters (dimension, minimum Hamming distance) compared to the concatenation according to Forney. The code class (then called generalised error locating codes, and confined to a linear partitioning scheme) was introduced by Blokh and Zyablov [V. Blokh, V. Zyablov, “Coding of generalised concatenated codes,”Problems of Information Transmission, Volume 10 (1974), pp. 218-222] as a generalization of “Error Locating Codes”. Later Zinoviev [V. A. Zinoviev, “Generalized cascade codes.” Problemy Peredachi Informatssi, vol. 12, no. 1, pp. 5-15, 1976 ] found a more general description based on the partitioning of sets and hence can be used to describe all variants of generalised concatenation.
The use of Reed-Solomon as outer and BCH as inner component codes is widely used for constructing generalised concatenated codes [for example Bosset, “Channel coding for Telecommunications” Wiley 1999]. This is also true for utilising the cyclotomic structure of the BCH codes for describing the partitioning of the inner code. However, the construction of high (but not extremely high) rate codes requires matching all cyclotomic cosets (or unions of them) to nontrivial outer codes. Moreover, the length of the concatenated code calls for a parity check extension of the inner code.